package listeners;

import interface_grafica.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JOptionPane;

import banco.Queries;

import doacoes.Doacao;

public class ListenersTelaEdicaoDoacao implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {

		TelaEdicaoDoacao tela = TelaEdicaoDoacao.getInstance();
		TelaPrincipal frame = TelaPrincipal.getInstance();
		Queries query = new Queries();

		if (e.getSource() == tela.getBtSalvar()) {

			String nome = tela.getNomeDoacao();
			int quantidade = Integer.parseInt(tela.getQuantidadeDoacao());
			int codMaterial = Integer.parseInt(tela.getIdDoacao());
			String dataDoacao = tela.getDataValidadeDoacao();
			String validade = tela.getDataValidadeDoacao();
			String doador = tela.getNomeDoador();
			Double largura = Double.parseDouble(tela.getLarguraDoacao());
			Double altura = Double.parseDouble(tela.getAlturaDoacao());
			Double comprimento = Double
					.parseDouble(tela.getComprimentoDoacao());
			Double composicao = Double.parseDouble(tela.getComposicaoDoacao());
			Double volume = Double.parseDouble(tela.getVolumeDoacao());
			Double peso = Double.parseDouble(tela.getVolumeDoacao());

			Doacao novaDoacao = new Doacao(codMaterial, dataDoacao, nome,
					quantidade, doador, validade, peso, volume, largura,
					altura, composicao, comprimento);

			// INSERIR NO BANCO

			String tabela = "material";
			String valores = "nome='" + novaDoacao.getNome()
					+ "', quantidade='" + novaDoacao.getQuantidade()
					+ "', datadoacao='" + novaDoacao.getData()
					+ "', datavalidade='" + novaDoacao.getValidade()
					+ "', nomedoador='" + novaDoacao.getDoador()
					+ "', largura='" + novaDoacao.getLargura() + "', altura='"
					+ novaDoacao.getAltura() + "', comprimento='"
					+ novaDoacao.getComprimento() + "', composicao='"
					+ novaDoacao.getComposicao() + "', volume='"
					+ novaDoacao.getVolume() + "', peso'"
					+ novaDoacao.getPeso() + "'";

			String condicao = "codmaterial='" + codMaterial + "'";
			try {
				query.atualizar(tabela, condicao, valores);
				JOptionPane.showMessageDialog(null,
						"Atualizacao feita com sucesso!");

			} catch (SQLException e1) {
				JOptionPane.showMessageDialog(null,
						"Erro ao realizar atualizar!", "Associex",
						javax.swing.JOptionPane.ERROR_MESSAGE);
				e1.printStackTrace();
			}
		} else if (e.getSource() == tela.getBtRemover()) {

			String id = tela.getIdDoacao();
			String nome = tela.getNomeDoacao();

			String tabela = "material";
			String condicao = "nome='" + nome + "' AND codmaterial='" + id
					+ "'";

			try {
				query.remover(tabela, condicao);

				JOptionPane.showMessageDialog(null, "Removido");

				TelaConsultaSocio tela2 = TelaConsultaSocio.getInstance();

				String tabela2 = "socio";
				String condicao2 = "true";

				try {
					ResultSet rs2 = query.consultar(tabela2, condicao2);
					tela2.limpaDtm();
					if (rs2.next()) {
						while (rs2.next()) {

							String id2 = String
									.valueOf((rs2.getInt("codsocio")));
							String nome2 = rs2.getString("nome");
							String tipo2;

							if (rs2.getInt("tipoSocio") == 1) {
								tipo2 = "Diretor";
							} else {
								tipo2 = "Associado";
							}

							tela2.getDtm().addRow(
									new Object[] { id2, nome2, tipo2 });
						}
						tela2.setBounds(10, 11, 1063, 557);

						frame.getPanel().removeAll();
						frame.getPanel().add(tela2);
						frame.repaint();
						frame.validate();
					}

					else {
						frame.getPanel().removeAll();
						frame.repaint();
						frame.validate();
					}
				} catch (SQLException e1) {
					e1.printStackTrace();
				}

			} catch (SQLException e1) {
				JOptionPane.showMessageDialog(null, "Erro ao remover");
				e1.printStackTrace();
			}
		}

	}// actionPerformed

}